package com.ruoyi.project.module.response.mapper;

import com.ruoyi.project.module.response.domain.Response;
import com.ruoyi.project.module.response.domain.ResponseCompletion;
import com.ruoyi.project.module.response.domain.ResponseFiliation;
import com.ruoyi.project.module.response.domain.ResponseParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ResponseParamMapper {

    /**
      *
      * @Description TODO: 根据接口ID获取返回值
      * @Author Rick
      * @Param: apiConnectorId 接口ID
      * @Return List<ResponseParam> 接口返回值
      * @Date 2018/10/15 10:35
      */
    List<ResponseParam> getList(@Param("apiProjectId") Long apiProjectId);

    /**
      *
      * @Description TODO: 添加返回值
      * @Author Rick
      * @Param: list 返回值集合
      * @Date 2018/10/16 9:53
      */
    int addResponse(@Param("list") List<Response> list);

    /**
      *
      * @Description TODO: 添加返回值关系
      * @Author Rick
      * @Param: list 返回值关系集合
      * @Date 2018/10/16 9:53
      */
    int addResponseFiliation(@Param("list") List<ResponseFiliation> list);

    /**
     *
     * @Description TODO: 添加返回参数
     * @Author Rick
     * @Param: response 接口返回参数
     * @Date 2018/10/16 18:02
     */
    int addNewLine(Response response);

    /**
      *
      * @Description TODO: 修改返回参数
      * @Author Rick
      * @Param: response 返回参数
      * @Return
      * @Date 2018/10/16 11:11
      */
    int modifyResponse(Response response);

    /**
      *
      * @Description TODO: 删除参数
      * @Author Rick
      * @Param: responseId id
      * @Date 2018/10/16 11:14
      */
    int delResponse(@Param("responseCode") String responseCode);

    /**
      *
      * @Description TODO: 根据父级编号删除层级关系
      * @Author Rick
      * @Param: responseCode 参数唯一编号
      * @Return
      * @Date 2018/10/16 11:16
      */
    int delResponseFiliation(@Param("parentResponseCode") String parentResponseCode);

    /**
      *
      * @Description TODO: 添加层级关系
      * @Author Rick
      * @Param: responseFiliation 层级关系
      * @Return
      * @Date 2018/10/16 18:43
      */
    int addFiliation(ResponseFiliation responseFiliation);

    /**
     *
     * @Description TODO: 删除项目所有返回值
     * @Author Rick
     * @Param: projectId 接口ID
     * @Return
     * @Date 2018/10/16 20:10
     */
    int cleanResponse(@Param("projectId") Long projectId);

    /**
     *
     * @Description TODO: 删除项目所有返回值
     * @Author Rick
     * @Param: projectId 接口ID
     * @Return
     * @Date 2018/10/16 20:10
     */
    int cleanResponseFiliation(@Param("projectId") Long projectId);


    List<ResponseCompletion> completionParamName(@Param("paramName")String paramName);
}
